1. Technical Field
The present invention relates generally to an improved data processing system and in particular to a method and apparatus for processing data. Still more particularly, the present invention relates to a method, apparatus, and computer instructions for responding to events.
2. Description of Related Art
Increasingly large symmetric multi-processor data processing systems, such as IBM eServer P690, available from International Business Machines Corporation, DHP9000 Superdome Enterprise Server, available from Hewlett-Packard Company, and the Sunfire 15K server, available from Sun Microsystems, Inc. are not being used as single large data processing systems. Instead, these types of data processing systems are being partitioned and used as smaller systems. A partitioned functionality within a data processing system allows multiple copies of a single operating system or multiple heterogeneous operating systems to be simultaneously run on a single data processing system platform. Partitioning of a data processing system may be physical and/or logical. A partition, within which an operating system image runs, is assigned a non-overlapping subset of the platforms resources. These platform allocatable resources include one or more architecturally distinct processors with their interrupt management area, regions of system memory, and input/output (I/O) adapter bus slots. The partition's resources are represented by the platform's firmware to the operating system image.
Each distinct operation system or image of an operating system running within a platform is protected from each other such that software errors on one logical partition cannot affect the correct operations of any of the other partitions. This protection is provided by allocating a disjointed set of platform resources to be directly managed by each operating system image and by providing mechanisms for insuring that the various images cannot control any resources that have not been allocated to that image. Furthermore, software errors in the control of an operating system's allocated resources are prevented from affecting the resources of any other image. Thus, each image of the operating system or each different operating system directly controls a distinct set of allocatable resources within the platform. With respect to hardware resources in a logical partitioned data processing system, these resources are disjointly shared among various partitions. These resources may include, for example, input/output (I/O) adapters, memory DIMMs, non-volatile random access memory (NVRAM), and hard disk drives. Each partition within an LPAR data processing system may be booted and shut down over and over without having to power-cycle the entire data processing system.
In a logical partitioned data processing system, a number of scenarios or instances may occur in which the platform firmware and hardware need to inform the operating systems or the partition firmware of critical platform events that are abstracted from the partition. Examples of critical platform events include a loss of power, a low battery, a system bus failure, or a high temperature that a result in damage to components in the logical partitioned data processing system.
In current architectures, the platform firmware is unable to directly call an operating system or partition firmware within the logical partitioned data processing system. Runtime partition firmware is a passive layer of software that can only be invoked by the operating system. Although some hardware owned by the partition may seek immediate service by interrupting the device driver for the hardware, platform hardware is present that is abstracted from the partition and cannot communicate directly with the operating system.
One mechanism used to detect events in the platform relies on the operating system periodically polling the partition firmware to identify new events occurring in the platform. This approach is inadequate when an immediate response to an event is needed. For example, storage servers are required to respond immediately to power conditions and other events that could cause data corruption or data loss. Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for enabling a partition to respond to events generated by platform hardware.